package com.ruoyi.course.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学年信息对象 academic_year
 * 
 * @author chenxl
 * @date 2025-08-29
 */
public class AcademicYear extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键，使用字符串ID */
    //@JsonIgnore
    private String id;

    /** 学年编码，如 2025-2026 */
    @Excel(name = "学年编码，如 2025-2026")
    private String yearCode;

    /**学年名称*/
    @Excel(name = "学年名称")
    private String yearName;

    /** 学年起始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学年起始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 学年结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学年结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 状态：0=未启用, 1=当前, 2=已结束 */
    @Excel(name = "状态：0=未启用, 1=当前, 2=已结束")
    private Long status;

    /** 是否为系统默认学年 */
    @Excel(name = "是否为系统默认学年")
    private Integer isDefault;

    /**学期数*/
    @Excel(name = "学期数")
    private Integer semesterNum;

    /** 创建时间 */
    @JsonIgnore
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonIgnore
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /**dictionary_value字典键值*/
    @Excel(name = "dictionary_value字典键值")
    private String dictionaryValue;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setYearCode(String yearCode) 
    {
        this.yearCode = yearCode;
    }

    public String getYearCode() 
    {
        return yearCode;
    }

    public void setStartDate(Date startDate) 
    {
        this.startDate = startDate;
    }

    public Date getStartDate() 
    {
        return startDate;
    }

    public void setEndDate(Date endDate) 
    {
        this.endDate = endDate;
    }

    public Date getEndDate() 
    {
        return endDate;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setIsDefault(Integer isDefault) 
    {
        this.isDefault = isDefault;
    }

    public Integer getIsDefault() 
    {
        return isDefault;
    }

    public void setCreatedAt(Date createdAt) 
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt() 
    {
        return createdAt;
    }

    public void setUpdatedAt(Date updatedAt) 
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt() 
    {
        return updatedAt;
    }

    public Integer getSemesterNum() {
        return semesterNum;
    }

    public void setSemesterNum(Integer semesterNum) {
        this.semesterNum = semesterNum;
    }

    public String getDictionaryValue() {
        return dictionaryValue;
    }

    public void setDictionaryValue(String dictionaryValue) {
        this.dictionaryValue = dictionaryValue;
    }

    public String getYearName() {
        return yearName;
    }

    public void setYearName(String yearName) {
        this.yearName = yearName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("yearCode", getYearCode())
            .append("yearName", getYearName())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("status", getStatus())
            .append("isDefault", getIsDefault())
            .append("createdAt", getCreatedAt())
            .append("updatedAt", getUpdatedAt())
            .append("semesterNum", getSemesterNum())
            .append("dictionaryValue", getDictionaryValue())
            .toString();
    }
}
